package tech.aistar.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import tech.aistar.entity.Result;
import tech.aistar.entity.User;
import tech.aistar.service.IUserService;

/**
 * 本类用来演示: 用户控制层
 *
 * @author: success
 * @date: 2021/1/5 3:43 下午
 */
@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private IUserService userService;

    @Autowired
    private JavaMailSender mailSender;

    /**
     * 返回登录界面
     * @return
     */
    @GetMapping("/login")
    public String loginView(){
        return "user/login";
    }

    /**
     * 进行登录处理
     * 1 - 接受页面传过来的数据
     *     保证该方法的参数的名称和前端传过来的key的名称保持一致即可
     *
     * 2 - 由于是ajax方式发送过来的,因此这个方法必须返回一个json数据出去.
     * @return
     */
//    @PostMapping("/logincl")
//    @ResponseBody // 将返回的结果转换成json对象
//    public Result logincl(String email){
//        //System.out.println(email+"=======");
//
//
//        return new Result("200","登录成功",null);
//    }


    @PostMapping("/sendCode")
    @ResponseBody
    public Result sendCode(String email){
        //到数据库的user表中根据email进行查询,查看email是否存在
        User user = userService.login(email);
        //如果存在...
        if(null!=user){//user表中是存在这个用户的
            //发送验证码的代码...

            SimpleMailMessage msg = new SimpleMailMessage();
            msg.setFrom("2495785435@qq.com");

            msg.setSubject("伟大的宿迁学院");

            //随机100000 - 999999
            int n = (int) (Math.random()*900000+100000);

            //将int类型->字符串类型
            String code = String.valueOf(n);

            msg.setText("验证码:"+code);

            msg.setTo(email);

            //发送
            mailSender.send(msg);


            return new Result("200","发送验证码成功!请您查收!",null);
        }

        //如果不存在...
        return new Result("500","sorry,邮箱不存在!",null);
    }
}
